home *** CD-ROM | disk | FTP | other *** search
/ CD ROM Paradise Collection 4 / CD ROM Paradise Collection 4 1995 Nov.iso / program / swagg_m.zip / INTERRUP.SWG / 0013_Writing an ISR.pas < prev    next >
Pascal/Delphi Source File  |  1993-11-02  |  830b  |  38 lines

  1. {
  2. JON JASIUNAS
  3.  
  4. Write you're own ISR, and perform whatever action you want whenever the
  5. user presses the desired key(s).
  6. }
  7.  
  8. Var
  9.   OldInt9 : Pointer;  {- To save original int $09 address }
  10.   OldExit : Pointer;  {- To save original Exit proc }
  11.  
  12. Procedure TempInt9;  INTERRUPT;
  13. begin
  14.   { Check For keypress }
  15.   { if pressed process and Exit }
  16.   { else call original int $09 to process keystroke }
  17. end; { TempInt9 }
  18.  
  19. Procedure CustomExit;  Far;
  20. begin
  21. {-Restore original Exit proc }
  22.   ExitProc := OldExit;
  23.  
  24. {-Restore original int $09 }
  25.   SetIntVec($09, OldInt9);
  26. end;    { CustomExit }
  27.  
  28. begin
  29. {-Save original Exit proc and install yours }
  30.   OldExit  := ExitProc;
  31.   ExitProc := @CustomExit;
  32.  
  33. {-Save original int $09 and install yours }
  34.   GetIntVec($09, OldInt9);
  35.   SetIntVec($09, @TempInt9);
  36. end.
  37.  
  38.